class Solution {
private:
    void find_next_pos(int &i, string &s){
        for(; i < s.length(); i++){
            if(s[i] == ','){
                ++i;
                return;
            }
        } 
    }
public:
    bool isValidSerialization(string preorder) {
        stack<int> st;
        st.push(1);
        for(int i = 0; i < preorder.length(); find_next_pos(i, preorder)){
            if(st.empty())return false;
            int temp = st.top();
            st.pop();
            temp--;
            if(temp)st.push(temp);
            if(preorder[i] != '#')st.push(2);
        }
        return st.empty();
    }
};

//2021.3.12 
